<?php
/*
 * $Id$
 *
 *
 */

if (!defined('BASEPATH')) exit('No direct script access allowed');

class Ricevute extends MX_Controller {
	var $template = array();
    var $data_impostazione = "";

	function __construct()
	{
		parent::__construct();
        
        $this->user->require_login();
		
		$this->template['module']	= 'adozioni';
		$this->template['nome_mese'] = array(1 => 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'); 
		$this->load->model('sostenitori_model', 'sos');
		$this->load->model('offerte_model', 'off');
        $this->load->helper('adozioni');

	}
	
	function index()
	{
		
		$this->template['title'] = __("Stampe Conti Correnti Postali e Riepiloghi", "adozioni");
		$this->layout->load($this->template, 'stampe_stampe_index');
		
	}

	function fiscali($id_sostenitore = null)
	{
		
		
		if(!is_null($id_sostenitore))
		{
			$params = array('where' => 's.id = ' . $this->db->escape($id_sostenitore));
			$totale = 1;
			$this->session->set_userdata('print_anagrafica_sostenitori', $params);
			$this->session->set_userdata('search_anagrafica_sostenitori', $params);
			
		}
		elseif($this->session->userdata('search_anagrafica_sostenitori'))
		{
			$params = $this->session->userdata('search_anagrafica_sostenitori');
			$params['select'] = 's.id';
			$params['group_by']  = null;
			
			
			$rows = $this->sos->get_list($params);
			
			if(!$rows) return;
			
			$i = 0;
			$where = array();
			
			foreach($rows as $row)
			{
				$where[ $row['id'] ] = $row['id'];
			}
			
			$where = array_unique($where);
			
			$totale = count($where);
			
			$params = array('where' => 's.id IN (' . join (",", $where) . ')');
			
			$this->session->set_userdata('print_anagrafica_sostenitori', $params);
			
		}
		else
		{
			$this->session->set_flashdata('notification', __("Cerca e seleziona prima i sostenitori da stampare", "adozioni"));
			redirect('adozioni/ricerca/sostenitori');
			return;
		}
		$this->template['total'] = $totale;

		
		if($this->input->post('salva'))
		{
			$this->off->save_settings('dichiarazione_fiscale', $this->input->post('testo_ricevuta'));
			$this->session->set_flashdata('notification', "Contenuto salvato con successo");
			redirect('adozioni/anagrafica/sostenitori/show/' . $id_sostenitore);
			return;
		}
		elseif($this->input->post('salva_e_stampa'))
		{
			$anno = $this->input->post('anno');
			$testo_ricevuta = $this->input->post('testo_ricevuta');
			$this->off->save_settings('dichiarazione_fiscale', $testo_ricevuta);
		
			//get sostenitori
			$params = $this->session->userdata('print_anagrafica_sostenitori');
			$b_where = $params['where'];
			
		
			$params['select'] = "s.nomecognome, t.nome as titolo, s.cfisc, s.presso, s.indirizzo, s.cap, s.citta, s.prov, sum(valore) as importo";
			$params['group_by'] = "s.id, s.nomecognome, t.nome, s.cfisc, s.presso, s.indirizzo, s.cap, s.citta, s.prov";
			$params['where'] = "extract(year from o.data)  = '" . $anno . "' AND " . $b_where;
			//this is the maxi array
			
			
			$this->load->model('sostenitori_model', 'sos');
			$sostenitori = $this->sos->get_list($params);

			
			
			$this->load->library('adozioni/tpdf', array('P','mm', 'A4', false, 'ISO-8859-1'));
			
			if(!$sostenitori) 
			{
				$this->session->set_flashdata('notification', sprintf(__("Nessuna contabilit&agrave; per l'anno %s", "adozioni"), $anno));
				redirect('/adozioni/stampe/ricevute/fiscali/');
				return;
			}
			
			if($this->input->post('with_header'))
			{
				$this->tpdf->setPrintHeader(true);
			}
			else
			{
				$this->tpdf->setPrintHeader(false);
			}
			$this->tpdf->setPrintFooter(false);	
			$this->tpdf->SetMargins(17, 0, 20);
			
			foreach($sostenitori as $ben)
			{
				$this->tpdf->AddPage();
				
				$testo = $testo_ricevuta;
				
				$testo = str_replace('{TITOLO}', $ben['titolo'], $testo);
				$testo = str_replace('{DATA}', date("d/m/Y"), $testo);
				$testo = str_replace('{NOME}', $ben['nomecognome'], $testo);
				$testo = str_replace('{IMPORTO}', format_euro($ben['importo']), $testo);
				$testo = str_replace('{CODICE_FISCALE}', $ben['cfisc'], $testo);
				$testo = str_replace('{ANNO}', $anno, $testo);
				
				$this->load->library('adozioni/numberstowords');
				
				$valore_lettera = $this->numberstowords->euro2word($ben['importo']);
				
				$testo = str_replace('{IMPORTO_IN_LETTERA}', $valore_lettera, $testo);
			
				
				$address = "";
				if($ben['presso']) $address .= $ben['presso'] . "<br />" ;
				$address .= $ben['indirizzo'] . " " . $ben['cap'] . " " . $ben['citta'] . " " . $ben['prov'];
				$testo = str_replace('{INDIRIZZO}', $address, $testo);
				
				// Print text using writeHTMLCell()
				$testo = html_entity_decode($testo);
				
				$this->tpdf->writeHTMLCell(0, 0, 17, 70, $testo, 0, 1, 0, true, '', true);
				$this->tpdf->SetAutoPageBreak(false);		
			}
			
			$this->tpdf->Output('dichiarazioni_fiscale_' .  date("Ymd_His") . '.pdf', 'D');
			
			
		
		}
		
		

		
		$this->plugin->add_action('header', array(&$this, '_header_ricevuta'));

		$testo_ricevuta = $this->off->get_settings('dichiarazione_fiscale');
		$this->template['testo_ricevuta'] = $testo_ricevuta;
		$this->template['id_sostenitore'] = $id_sostenitore;
		$this->template['title'] = __("Dichiarazione fiscale", "adozioni");
		
		$this->layout->load($this->template, 'stampe_ricevute_fiscali');
		
	
	}
	function _header_ricevuta()
	{
		echo '<script type="text/javascript" src="' . site_url('application/modules/adozioni/js/ckeditor/ckeditor.js') . '"></script>'; 
	}
	
	
}
